
package sg.edu.nus.iss.vmcs.store;
/*
 * Copyright 2003 ISS.
 * The contents contained in this document may not be reproduced in any
 * form or by any means, without the written permission of ISS, other
 * than for the purpose for which it has been supplied.
 *
 */

import sg.edu.nus.iss.vmcs.util.VMCSException;

/**
 *
 *
 * @version 3.0 5/07/2003
 * @author Olivo Miotto, Pang Ping Li
 * updated by Linn
 */
public abstract class PropertyLoader {

    private PropertyLoaderImpl plImpl = null;

    public PropertyLoader() {
    }

    public abstract void setImplementationType();

    protected PropertyLoaderImpl getPropertyLoaderImpl() {
        return plImpl;
    }

    protected void setPropertyLoaderImpl(PropertyLoaderImpl plImpl) {
        this.plImpl = plImpl;
    }

    public void initialize() throws VMCSException {
        plImpl.initialize();
    }

    public abstract void saveProperty() throws Exception;

    public abstract int getNumOfItems();

    public abstract void setNumOfItems(int numItems);

    public abstract StoreItem getItem(int index);

    public abstract void setItem(int index, StoreItem item);
}
